home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / basic / ubppmpqs.zip / ubp.mac < prev   
Text File  |  1993-04-16  |  3KB  |  238 lines

  1. ;UB.MAC
  2. ;    MACRO LIBRARY FOR
  3. ;    UBASIC USER MAKING ROUTINE
  4. ;
  5.  
  6. LENMASK    EQU    0000001111111111b
  7.  
  8. SYSTBL    EQU    0000H
  9.  
  10. LSIZE    EQU    0040H    ;pointer to the byte length of long arrays
  11. LLSIZE    EQU    0042H    ;pointer to the byte length of extra arrays
  12. CALCSP    EQU    0044H    ;pointer to the calculation stack pointer
  13. ARRAYHEADSEG    EQU    2    ;2 segments = 32 bytes are used for
  14.                 ;array header
  15.  
  16. V1    EQU    0080H
  17. V2    EQU    0084H
  18. V3    EQU    0088H
  19. V4    EQU    008CH
  20. V5    EQU    0090H
  21. V6    EQU    0094H
  22. V7    EQU    0098H
  23. V8    EQU    009CH
  24. V9    EQU    00A0H
  25. V10    EQU    00A4H
  26. V11    EQU    00A8H
  27. V12    EQU    00ACH
  28. V13    EQU    00B0H
  29. V14    EQU    00B4H
  30. V15    EQU    00B8H
  31. V16    EQU    00BCH
  32.  
  33. V17    EQU    00C0H
  34. V18    EQU    00C4H
  35. V19    EQU    00C8H
  36. V20    EQU    00CCH
  37. V21    EQU    00D0H
  38. V22    EQU    00D4H
  39. V23    EQU    00D8H
  40. V24    EQU    00DCH
  41. V25    EQU    00E0H
  42. V26    EQU    00E4H
  43. V27    EQU    00E8H
  44. V28    EQU    00ECH
  45. V29    EQU    00F0H
  46. V30    EQU    00F4H
  47. V31    EQU    00F8H
  48. V32    EQU    00FCH
  49.  
  50. AR0    EQU    0020H
  51. AR1    EQU    0022H
  52. AR2    EQU    0024H
  53. AR3    EQU    0026H
  54. AR4    EQU    0028H
  55. AR5    EQU    002AH
  56. AR6    EQU    002CH
  57. AR7    EQU    002EH
  58. AR8    EQU    0030H
  59. AR9    EQU    0032H
  60. AR10    EQU    0034H
  61. AR11    EQU    0036H
  62. AR12    EQU    0038H
  63. AR13    EQU    003AH
  64. AR14    EQU    003CH
  65. AR15    EQU    003EH
  66.  
  67. ;FUNCTION CODE
  68.  
  69. SGN    EQU    1
  70. LEN    EQU    2
  71. BIT    EQU    3
  72. GCD    EQU    4
  73. SQR    EQU    5
  74. ISQR    EQU    6
  75. FIX    EQU    7
  76. KRO    EQU    8
  77. SIN    EQU    9
  78. COS    EQU    10
  79.  
  80. EXP    EQU    11
  81. LOG    EQU    12
  82. PAI    EQU    13
  83. PRM    EQU    14
  84. MOB    EQU    15
  85. EUL    EQU    16
  86. PRMDIV    EQU    17
  87.  
  88. MODPOW    EQU    26
  89. MODINV    EQU    27
  90. INIT    EQU    28
  91. ALEN    EQU    29
  92. NXTPRM    EQU    30
  93.  
  94. MAX    EQU    31
  95. MIN    EQU    32
  96. SFT    EQU    33
  97.  
  98.  
  99.  
  100. MOV_AX    MACRO    PARAM
  101.     DB    2EH        ;CS:
  102.     DB    0A1H        ;MOV AX,[PARAM]
  103.     DW    PARAM
  104.     ENDM
  105.  
  106. MOV_BX    MACRO    PARAM
  107.     DB    2EH        ;CS:
  108.     DB    8BH        ;MOV BX,[PARAM]
  109.     DB    1EH
  110.     DW    PARAM
  111.     ENDM
  112.  
  113. LDS_SI    MACRO    PARAM
  114.     DB    2EH        ;CS:
  115.     DB    0C5H,36H
  116.     DW    PARAM
  117.     ENDM
  118.  
  119. LES_DI    MACRO    PARAM
  120.     DB    2EH        ;CS:
  121.     DB    0C4H,3EH
  122.     DW    PARAM
  123.     ENDM
  124.  
  125. CALL_F    MACRO    PARAM
  126.     DB    36H        ;SS:
  127.     DB    0FFH,1EH
  128.     DW    PARAM
  129.     ENDM
  130.  
  131.  
  132.  
  133. @LET    MACRO    DEST,SORC
  134.     LDS_SI    SORC
  135.     LES_DI    DEST
  136.     MOV    CX,[SI]
  137.     AND    CX,3FFFH
  138.     INC    CX
  139.     CLD
  140.     REP    MOVSW
  141.     ENDM
  142.  
  143.  
  144. @PUSH    MACRO    SORC
  145.     LDS_SI    SORC
  146.     CALL_F    SYSTBL+4
  147.     ENDM
  148.  
  149.  
  150. @POP    MACRO    DEST
  151.     LES_DI    DEST
  152.     CALL_F    SYSTBL+8
  153.     ENDM
  154.  
  155.  
  156. @ADD    MACRO
  157.     CALL_F    SYSTBL+32    ;8*4
  158.     ENDM
  159.  
  160.  
  161. @SUB    MACRO
  162.     CALL_F    SYSTBL+36    ;9*4
  163.     ENDM
  164.  
  165.  
  166. @MUL    MACRO
  167.     CALL_F    SYSTBL+40    ;10*4
  168.     ENDM
  169.  
  170.  
  171. @DIV    MACRO
  172.     CALL_F    SYSTBL+44    ;11*4
  173.     ENDM
  174.  
  175.  
  176. @IDIV    MACRO
  177.     CALL_F    SYSTBL+48    ;12*4
  178.     ENDM
  179.  
  180.  
  181. @MOD    MACRO
  182.     CALL_F    SYSTBL+52    ;13*4
  183.     ENDM
  184.  
  185.  
  186. @P2    MACRO
  187.     CALL_F    SYSTBL+56    ;14*4
  188.     ENDM
  189.  
  190.  
  191. @FUNC    MACRO    FUNCNAME
  192.     MOV    AX,SS
  193.     MOV    DS,AX
  194.     MOV    ES,AX
  195.     MOV    AL,FUNCNAME
  196.     CALL_F    SYSTBL
  197.     ENDM
  198.  
  199. @DUMPUSH    MACRO
  200.     MOV_BX    CALCSP
  201.     MOV_AX    LLSIZE
  202.     SUB    SS:[BX],AX
  203.     ENDM
  204.  
  205. @DUMPOP    MACRO
  206.     MOV_BX    CALCSP
  207.     MOV_AX    LLSIZE
  208.     ADD    SS:[BX],AX
  209.     ENDM
  210.  
  211.  
  212. RETURN    MACRO
  213.     MOV    AX,SS
  214.     MOV    DS,AX
  215.     MOV    ES,AX
  216.     RETF            ;DB    0CBH
  217.  
  218. CODE    ENDS
  219. END    START
  220.  
  221.     ENDM
  222.  
  223.  
  224. JMPS    MACRO    DEST
  225.     JMP    SHORT DEST
  226.     ENDM
  227.  
  228. JMPE    MACRO    DEST
  229.     LOCAL    LAB
  230.     JNE    LAB
  231.     JMP    DEST
  232. LAB:
  233.     ENDM
  234.  
  235.  
  236. .LIST
  237.  
  238.